/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.jcp.bean;

import com.jcp.modelo.Usuario;
import com.jcp.modelo.dao.UsuarioDao;
import java.io.Serializable;
import java.sql.SQLException;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author jt-jk
 */
@ManagedBean
@SessionScoped
public class InicioSesionBean implements Serializable {

    private Usuario usuario;
    /**
     * Referencia de la clase DAO que contiene el metodo que verifica 
     * si el usuario esta registrado en el sistema, la cual ustedes 
     * la realizaron desde el semestre pasado.
     */
    private UsuarioDao usuariodao;

    /** Creates a new instance of InicioSesionBean */
    public InicioSesionBean() {
        usuario = new Usuario();

        try {
            usuariodao = UsuarioDao.getInstance();
        } catch (SQLException ex) {
            ex.printStackTrace();
            addMessage("Error al conectarse con la base de datos.", FacesMessage.SEVERITY_FATAL);
        }
    }

    public String login() {

        /*if(usuario.getNombre().trim().equals("joan")
               && usuario.getClave().trim().equals("123")) {

               return "Pages/principal";*/

        try {
            if (usuariodao.login(usuario.getNombre().trim(), usuario.getClave().trim())){
                return "Pages/principal";
            }
        } catch (SQLException ex) {
            /**
             * Si ocurre algún error inesperado en la consulta a la base de datos 
             * la capturamos y mostramos el siguiente mensaje de error.
             */
            ex.printStackTrace();
            addMessage("Error al verificar la existencia del usuario en la base de datos", FacesMessage.SEVERITY_ERROR);
            return null;
        }

        //colocar mensaje
        addMessage("Usuario Incorrecto...!", FacesMessage.SEVERITY_ERROR);


        usuario = new Usuario();
        return null;
    }

    private void addMessage(String mensaje, FacesMessage.Severity severity) {
        FacesMessage fm = new FacesMessage(severity, mensaje, null);
        FacesContext.getCurrentInstance().addMessage(null, fm);
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }
}
